//作者3345756927，感谢大佬2166464680技术支持
export class example extends plugin {
  constructor() {  
    super({  
      name: '自动20连戳',  
      dsc: '戳满20次自动收工',  
      event: 'message',  
      priority: 5000,  
      rule: [  
        {  
          reg: '^戳.*$',  
          fnc: 'startPoke',  
          permission: 'master'  
        }  
      ]  
    });  

    // 存储戳人任务 { 群号: { timer, count, targetQQ } }  
    this.pokeTasks = new Map();  
  }  

  // 启动戳人任务  
  async startPoke(e) {  
    const targetQQ = e.at;  
    if (!targetQQ) return e.reply('要戳谁呢？请@对方哦～(歪头)');  

    // 如果已有任务，先清理旧任务  
    if (this.pokeTasks.has(e.group_id)) {  
      this.clearTask(e.group_id);  
    }  

    let count = 0;  
    //这里修改戳人次数上限
    const maxCount = 20;  

    // 创建定时器  
    const timer = setInterval(async () => {  
      try {  
        await e.group.pokeMember(targetQQ);  
        count++;  

        // 每戳5次汇报进度  
        if (count % 5 === 0) {  
          await e.reply(`[进度] ${count}/${maxCount} (๑•̀ㅂ•́)و✧`);  
        }  

        // 满20次自动清理  
        if (count >= maxCount) {  
          this.clearTask(e.group_id);  
          await e.reply([  
            segment.at(targetQQ),  
            ' 的20连戳完成啦！(ﾉ≧ڡ≦)ﾉ'  
          ]);  
        }  
      } catch (err) {  
        this.clearTask(e.group_id);  
        await e.reply('戳人失败…可能被TX娘发现了！(＞﹏＜)');  
      }  
    }, 3000); // 间隔3秒  

    // 记录任务  
    this.pokeTasks.set(e.group_id, { timer, count, targetQQ });  
    e.reply(`启动20连戳～目标：${targetQQ}，坐等收工！`);  
  }  

  // 清理任务（私有方法）  
  clearTask(groupId) {  
    if (!this.pokeTasks.has(groupId)) return;  
    const task = this.pokeTasks.get(groupId);  
    clearInterval(task.timer);  
    this.pokeTasks.delete(groupId);  
  }  

  // 插件卸载时自动清理  
  unload() {  
    for (const groupId of this.pokeTasks.keys()) {  
      this.clearTask(groupId);  
    }  
  }  
}